package com.HomeWork;

import java.util.Calendar;
import java.util.Date;
import java.util.Timer;

/**
 * 做一个闹钟线程  在周一，周三，周五 的20:00分到达时，循环2分钟打印出闹钟响起来。在2分钟后，结束闹钟线程。。
 * 思路：  编写一个类继承Thread,在Run方法里面创建一个 Calendar对象，通过Calendar获得
 * 今天是一周的的第几天和当前系统 的小时和分钟数
 * 利用死循环不断获得当前的小时，分钟数，判断 当前小时分钟数是否为指定的20：00分,
 * 如果是则在控制台循环  打印出闹钟响起来
 * 到了20:02分，结束run方法
 */
public class work2 {
    public static void main(String[] args) {
        Alarm alarm = new Alarm();
        alarm.run();

    }

}

class Alarm extends Thread {
    boolean f = true;
    @Override
    public void run() {
        while (true) {
            Calendar calendar = Calendar.getInstance();
            int day = calendar.get(Calendar.DAY_OF_WEEK);
            int hour = calendar.get(Calendar.HOUR_OF_DAY);
            int minute = calendar.get(Calendar.MINUTE);
            int s = calendar.get(Calendar.SECOND);

            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("当前时间：  " + hour + ":" + minute + ":" + s);
            if ((day == 2 || day == 4 || day == 7) && hour == 15 && minute == 4) {
                while (f) {
                    Calendar calendar2 = Calendar.getInstance();
                    int minute2 = calendar2.get(Calendar.MINUTE);
                    int s2 = calendar2.get(Calendar.SECOND);
                    System.out.println(minute2 + ":" + s2);

                    work2_Timer work2_timer = new work2_Timer();
                    work2_timer.TwoMin();
                    if(work2_Timer.TwoMin()){
                        f=false;
                    }
                    try {
                        sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }

                }
                System.out.println("闹钟响了");
            }

        }
    }

}
